package cn.larry.tools.des;

import java.security.Key;
import java.security.NoSuchAlgorithmException;

/**
 * @version 1.0
 * @Author llin
 * @Date 2020/5/28 10:53
 * default => pkcs5、ECB模式、UTF-8
 */
public interface Des {

    /**
     * 加密
     *
     * @param strKey      密钥
     * @param str         明文
     * @param charsetName 编码格式（default：UTF-8）
     * @return
     */
    public String getEncrypt(String strKey, String str, String charsetName);

    /**
     * 解密
     *
     * @param strKey      密钥
     * @param str         密文
     * @param charsetName 编码格式（default：UTF-8）
     * @return
     */
    public String getDecrypt(String strKey, String str, String charsetName);


    /**
     * 加密
     *
     * @param key     密钥
     * @param strByte 明文
     * @return
     */
    public byte[] getEncrypt(Key key, byte[] strByte);

    /**
     * 解密
     *
     * @param key     密钥
     * @param strByte 密文
     * @return
     */
    public byte[] getDecrypt(Key key, byte[] strByte);

    /**
     * @param strKey
     * @return
     */
    public Key getKey(String strKey) throws NoSuchAlgorithmException, Exception, Throwable;


    public byte[] getEncryptIsNotBase64(Key key, byte[] strByte);

    public byte[] getDecryptIsNotBase64(Key key, byte[] strByte);

    public byte[] getBase64Decode(String str);

    public String getBase64Encode(byte[] bytes);

}
